[INFO] cloning repository https://github.com/JonathanWoollett-Light/stellaris-performance-test
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/JonathanWoollett-Light/stellaris-performance-test" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FJonathanWoollett-Light%2Fstellaris-performance-test", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FJonathanWoollett-Light%2Fstellaris-performance-test'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] e43f147cc3683f6c43980ebf47816e1af698cc20
[INFO] checking JonathanWoollett-Light/stellaris-performance-test/e43f147cc3683f6c43980ebf47816e1af698cc20 against master#b52edc25bfbaa955b4b83c10f998e5224c3478b2 for pr-156776
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FJonathanWoollett-Light%2Fstellaris-performance-test" "/workspace/builds/worker-4-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-4-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/JonathanWoollett-Light/stellaris-performance-test
[INFO] finished tweaking git repo https://github.com/JonathanWoollett-Light/stellaris-performance-test
[INFO] tweaked toml for git repo https://github.com/JonathanWoollett-Light/stellaris-performance-test written to /workspace/builds/worker-4-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/JonathanWoollett-Light/stellaris-performance-test on toolchain b52edc25bfbaa955b4b83c10f998e5224c3478b2
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+b52edc25bfbaa955b4b83c10f998e5224c3478b2" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/JonathanWoollett-Light/stellaris-performance-test already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+b52edc25bfbaa955b4b83c10f998e5224c3478b2" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded tokio-macros v0.2.5
[INFO] [stderr]   Downloaded pin-project-lite v0.1.7
[INFO] [stderr]   Downloaded proc-macro-nested v0.1.6
[INFO] [stderr]   Downloaded mio-named-pipes v0.1.6
[INFO] [stderr]   Downloaded hermit-abi v0.1.14
[INFO] [stderr]   Downloaded num v0.2.1
[INFO] [stderr]   Downloaded miow v0.3.5
[INFO] [stderr]   Downloaded num-iter v0.1.41
[INFO] [stderr]   Downloaded signal-hook v0.1.16
[INFO] [stderr]   Downloaded getrandom v0.1.14
[INFO] [stderr]   Downloaded ppv-lite86 v0.2.8
[INFO] [stderr]   Downloaded net2 v0.2.34
[INFO] [stderr]   Downloaded generator v0.6.21
[INFO] [stderr]   Downloaded arc-swap v0.4.7
[INFO] [stderr]   Downloaded bytes v0.5.5
[INFO] [stderr]   Downloaded socket2 v0.3.12
[INFO] [stderr]   Downloaded num-rational v0.2.4
[INFO] [stderr]   Downloaded num-integer v0.1.43
[INFO] [stderr]   Downloaded num-complex v0.2.4
[INFO] [stderr]   Downloaded pin-project-internal v0.4.22
[INFO] [stderr]   Downloaded num-traits v0.2.12
[INFO] [stderr]   Downloaded loom v0.3.4
[INFO] [stderr]   Downloaded serde_derive v1.0.113
[INFO] [stderr]   Downloaded num-format v0.4.0
[INFO] [stderr]   Downloaded pin-project v0.4.22
[INFO] [stderr]   Downloaded half v1.6.0
[INFO] [stderr]   Downloaded serde v1.0.113
[INFO] [stderr]   Downloaded crossterm v0.17.5
[INFO] [stderr]   Downloaded num-bigint v0.2.6
[INFO] [stderr]   Downloaded mio v0.6.22
[INFO] [stderr]   Downloaded serde_json v1.0.55
[INFO] [stderr]   Downloaded syn v1.0.32
[INFO] [stderr]   Downloaded arrayfire v3.7.0
[INFO] [stderr]   Downloaded tokio v0.2.21
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+b52edc25bfbaa955b4b83c10f998e5224c3478b2" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 05f558cdcd5f98669f911e1bf073ae6b5e8badcd0020150e0856a24c6ab445d2
[INFO] running `Command { std: "docker" "start" "-a" "05f558cdcd5f98669f911e1bf073ae6b5e8badcd0020150e0856a24c6ab445d2", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "05f558cdcd5f98669f911e1bf073ae6b5e8badcd0020150e0856a24c6ab445d2", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "05f558cdcd5f98669f911e1bf073ae6b5e8badcd0020150e0856a24c6ab445d2", kill_on_drop: false }`
[INFO] [stdout] 05f558cdcd5f98669f911e1bf073ae6b5e8badcd0020150e0856a24c6ab445d2
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+b52edc25bfbaa955b4b83c10f998e5224c3478b2" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] cc50267bf99d064d6decfc6521ce1177c2763bd483be39675210177a3a0a7c9f
[INFO] running `Command { std: "docker" "start" "-a" "cc50267bf99d064d6decfc6521ce1177c2763bd483be39675210177a3a0a7c9f", kill_on_drop: false }`
[INFO] [stderr]    Compiling proc-macro2 v1.0.18
[INFO] [stderr]    Compiling libc v0.2.71
[INFO] [stderr]    Compiling autocfg v1.0.0
[INFO] [stderr]    Compiling unicode-xid v0.2.0
[INFO] [stderr]    Compiling syn v1.0.32
[INFO] [stderr]    Compiling serde_derive v1.0.113
[INFO] [stderr]    Compiling ryu v1.0.5
[INFO] [stderr]     Checking slab v0.4.2
[INFO] [stderr]    Compiling serde v1.0.113
[INFO] [stderr]    Compiling log v0.4.8
[INFO] [stderr]    Compiling serde_json v1.0.55
[INFO] [stderr]    Compiling pin-project-internal v0.4.22
[INFO] [stderr]    Compiling memchr v2.3.3
[INFO] [stderr]    Compiling semver-parser v0.7.0
[INFO] [stderr]     Checking futures-core v0.3.5
[INFO] [stderr]    Compiling proc-macro-nested v0.1.6
[INFO] [stderr]    Compiling getrandom v0.1.14
[INFO] [stderr]     Checking once_cell v1.4.0
[INFO] [stderr]     Checking futures-sink v0.3.5
[INFO] [stderr]     Checking arc-swap v0.4.7
[INFO] [stderr]    Compiling num-traits v0.2.12
[INFO] [stderr]    Compiling num-integer v0.1.43
[INFO] [stderr]    Compiling num-bigint v0.2.6
[INFO] [stderr]    Compiling num-iter v0.1.41
[INFO] [stderr]    Compiling semver v0.9.0
[INFO] [stderr]    Compiling num-rational v0.2.4
[INFO] [stderr]    Compiling num-complex v0.2.4
[INFO] [stderr]    Compiling itoa v0.4.6
[INFO] [stderr]    Compiling proc-macro-hack v0.5.16
[INFO] [stderr]     Checking futures-channel v0.3.5
[INFO] [stderr]     Checking net2 v0.2.34
[INFO] [stderr]     Checking iovec v0.1.4
[INFO] [stderr]     Checking signal-hook-registry v1.2.0
[INFO] [stderr]     Checking num_cpus v1.13.0
[INFO] [stderr]     Checking futures-task v0.3.5
[INFO] [stderr]     Checking futures-io v0.3.5
[INFO] [stderr]     Checking smallvec v1.4.0
[INFO] [stderr]     Checking lock_api v0.3.4
[INFO] [stderr]    Compiling rustc_version v0.2.3
[INFO] [stderr]     Checking rand_core v0.5.1
[INFO] [stderr]     Checking parking_lot_core v0.7.2
[INFO] [stderr]     Checking ppv-lite86 v0.2.8
[INFO] [stderr]     Checking mio v0.6.22
[INFO] [stderr]     Checking half v1.6.0
[INFO] [stderr]     Checking pin-project-lite v0.1.7
[INFO] [stderr]     Checking bytes v0.5.5
[INFO] [stderr]     Checking num-format v0.4.0
[INFO] [stderr]     Checking parking_lot v0.10.2
[INFO] [stderr]     Checking rand_chacha v0.2.2
[INFO] [stderr]    Compiling quote v1.0.7
[INFO] [stderr]     Checking signal-hook v0.1.16
[INFO] [stderr]     Checking mio-uds v0.6.8
[INFO] [stderr]     Checking rand v0.7.3
[INFO] [stderr]     Checking crossterm v0.17.5
[INFO] [stderr]     Checking num v0.2.1
[INFO] [stderr]    Compiling futures-macro v0.3.5
[INFO] [stderr]    Compiling tokio-macros v0.2.5
[INFO] [stderr]     Checking tokio v0.2.21
[INFO] [stderr]     Checking pin-project v0.4.22
[INFO] [stderr]     Checking futures-util v0.3.5
[INFO] [stderr]     Checking futures-executor v0.3.5
[INFO] [stderr]     Checking futures v0.3.5
[INFO] [stderr]    Compiling arrayfire v3.7.0
[INFO] [stderr]     Checking stellaris-performance-test v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] error: expected expression, found `let` statement
[INFO] [stdout]    --> src/empire_optimization.rs:113:9
[INFO] [stdout]     |
[INFO] [stdout] 113 |         let compressed_employability_mask = species_employability_mask * empire_species_employability_mask;
[INFO] [stdout]     |         ^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: only supported directly in conditions of `if` and `while` expressions
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: expected expression, found `let` statement
[INFO] [stdout]    --> src/empire_optimization.rs:113:9
[INFO] [stdout]     |
[INFO] [stdout] 113 |         let compressed_employability_mask = species_employability_mask * empire_species_employability_mask;
[INFO] [stdout]     |         ^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: only supported directly in conditions of `if` and `while` expressions
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: expected `;`, found keyword `let`
[INFO] [stdout]    --> src/empire_optimization.rs:118:89
[INFO] [stdout]     |
[INFO] [stdout] 118 |         let multiplied_production = mul(&summed_production,compressed_species_muls,true)
[INFO] [stdout]     |                                                                                         ^ help: add `;` here
[INFO] [stdout] ...
[INFO] [stdout] 121 |         let imerial_market_values = &self.modifier.multiplier * market_values;
[INFO] [stdout]     |         --- unexpected token
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: expected `;`, found keyword `let`
[INFO] [stdout]    --> src/empire_optimization.rs:118:89
[INFO] [stdout]     |
[INFO] [stdout] 118 |         let multiplied_production = mul(&summed_production,compressed_species_muls,true)
[INFO] [stdout]     |                                                                                         ^ help: add `;` here
[INFO] [stdout] ...
[INFO] [stdout] 121 |         let imerial_market_values = &self.modifier.multiplier * market_values;
[INFO] [stdout]     |         --- unexpected token
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `job_adjusted` in this scope
[INFO] [stdout]    --> src/empire_optimization.rs:126:36
[INFO] [stdout]     |
[INFO] [stdout] 126 |         let market_adjusted = mul(&job_adjusted,&imerial_market_values,true);
[INFO] [stdout]     |                                    ^^^^^^^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `compressed_species_mods_arr` in this scope
[INFO] [stdout]    --> src/empire_optimization.rs:136:14
[INFO] [stdout]     |
[INFO] [stdout] 136 |             &compressed_species_mods_arr,
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: a local variable with a similar name exists
[INFO] [stdout]     |
[INFO] [stdout] 136 -             &compressed_species_mods_arr,
[INFO] [stdout] 136 +             &compressed_species_adds,
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `job_adjusted` in this scope
[INFO] [stdout]    --> src/empire_optimization.rs:126:36
[INFO] [stdout]     |
[INFO] [stdout] 126 |         let market_adjusted = mul(&job_adjusted,&imerial_market_values,true);
[INFO] [stdout]     |                                    ^^^^^^^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `compressed_species_mods_arr` in this scope
[INFO] [stdout]    --> src/empire_optimization.rs:136:14
[INFO] [stdout]     |
[INFO] [stdout] 136 |             &compressed_species_mods_arr,
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: a local variable with a similar name exists
[INFO] [stdout]     |
[INFO] [stdout] 136 -             &compressed_species_mods_arr,
[INFO] [stdout] 136 +             &compressed_species_adds,
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `HashSet`
[INFO] [stdout]  --> src/main.rs:6:27
[INFO] [stdout]   |
[INFO] [stdout] 6 |     collections::{HashMap,HashSet}
[INFO] [stdout]   |                           ^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `reorder_v2`
[INFO] [stdout]  --> src/empire_optimization.rs:1:67
[INFO] [stdout]   |
[INFO] [stdout] 1 | use arrayfire::{add,reorder,Array,Dim4,mul,MatProp,join_many,tile,reorder_v2};
[INFO] [stdout]   |                                                                   ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `NUMBER_OF_RESOURCES`
[INFO] [stdout]  --> src/empire_optimization.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 |     NUMBER_OF_RESOURCES,JOBS_MAX
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `HashSet`
[INFO] [stdout]  --> src/main.rs:6:27
[INFO] [stdout]   |
[INFO] [stdout] 6 |     collections::{HashMap,HashSet}
[INFO] [stdout]   |                           ^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `reorder_v2`
[INFO] [stdout]  --> src/empire_optimization.rs:1:67
[INFO] [stdout]   |
[INFO] [stdout] 1 | use arrayfire::{add,reorder,Array,Dim4,mul,MatProp,join_many,tile,reorder_v2};
[INFO] [stdout]   |                                                                   ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `NUMBER_OF_RESOURCES`
[INFO] [stdout]  --> src/empire_optimization.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 |     NUMBER_OF_RESOURCES,JOBS_MAX
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated function `arrayfire::reorder`: Please use new reorder API
[INFO] [stdout]  --> src/empire_optimization.rs:1:21
[INFO] [stdout]   |
[INFO] [stdout] 1 | use arrayfire::{add,reorder,Array,Dim4,mul,MatProp,join_many,tile,reorder_v2};
[INFO] [stdout]   |                     ^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated function `arrayfire::reorder`: Please use new reorder API
[INFO] [stdout]    --> src/empire_optimization.rs:116:39
[INFO] [stdout]     |
[INFO] [stdout] 116 |         let reorderd_job_production = reorder(&tiled_job_production,Dim4::new(&[0,2,1,3]));
[INFO] [stdout]     |                                       ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated function `arrayfire::reorder`: Please use new reorder API
[INFO] [stdout]  --> src/empire_optimization.rs:1:21
[INFO] [stdout]   |
[INFO] [stdout] 1 | use arrayfire::{add,reorder,Array,Dim4,mul,MatProp,join_many,tile,reorder_v2};
[INFO] [stdout]   |                     ^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated function `arrayfire::reorder`: Please use new reorder API
[INFO] [stdout]    --> src/empire_optimization.rs:116:39
[INFO] [stdout]     |
[INFO] [stdout] 116 |         let reorderd_job_production = reorder(&tiled_job_production,Dim4::new(&[0,2,1,3]));
[INFO] [stdout]     |                                       ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `empire::EmpireJob: std::marker::Copy` is not satisfied
[INFO] [stdout]   --> src/empire.rs:21:58
[INFO] [stdout]    |
[INFO] [stdout] 21 |         let mut empire_jobs_arr: [EmpireJob;JOBS_MAX] = [EmpireJob::default();JOBS_MAX];
[INFO] [stdout]    |                                                          ^^^^^^^^^^^^^^^^^^^^ unsatisfied trait bound
[INFO] [stdout]    |
[INFO] [stdout] help: the trait `std::marker::Copy` is not implemented for `empire::EmpireJob`
[INFO] [stdout]   --> src/empire.rs:71:1
[INFO] [stdout]    |
[INFO] [stdout] 71 | pub struct EmpireJob {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    = note: the `Copy` trait is required because this value will be copied for each element of the array
[INFO] [stdout]    = help: consider using `core::array::from_fn` to initialize the array
[INFO] [stdout]    = help: see https://doc.rust-lang.org/stable/std/array/fn.from_fn.html for more information
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `empire::EmpireJob: std::marker::Copy` is not satisfied
[INFO] [stdout]   --> src/empire.rs:21:58
[INFO] [stdout]    |
[INFO] [stdout] 21 |         let mut empire_jobs_arr: [EmpireJob;JOBS_MAX] = [EmpireJob::default();JOBS_MAX];
[INFO] [stdout]    |                                                          ^^^^^^^^^^^^^^^^^^^^ unsatisfied trait bound
[INFO] [stdout]    |
[INFO] [stdout] help: the trait `std::marker::Copy` is not implemented for `empire::EmpireJob`
[INFO] [stdout]   --> src/empire.rs:71:1
[INFO] [stdout]    |
[INFO] [stdout] 71 | pub struct EmpireJob {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    = note: the `Copy` trait is required because this value will be copied for each element of the array
[INFO] [stdout]    = help: consider using `core::array::from_fn` to initialize the array
[INFO] [stdout]    = help: see https://doc.rust-lang.org/stable/std/array/fn.from_fn.html for more information
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]   --> src/empire.rs:33:47
[INFO] [stdout]    |
[INFO] [stdout] 33 |             let planet = Planet::new(&mut rng,&self.jobs,&self.species);
[INFO] [stdout]    |                          -----------          ^^^^^^^^^^ expected `&Vec<EmpireJob>`, found `&[EmpireJob; 40]`
[INFO] [stdout]    |                          |
[INFO] [stdout]    |                          arguments to this function are incorrect
[INFO] [stdout]    |
[INFO] [stdout]    = note: expected reference `&Vec<empire::EmpireJob>`
[INFO] [stdout]               found reference `&[empire::EmpireJob; 40]`
[INFO] [stdout] note: associated function defined here
[INFO] [stdout]   --> src/empire.rs:95:12
[INFO] [stdout]    |
[INFO] [stdout] 95 |     pub fn new(rng:&mut ThreadRng,empire_jobs: &Vec<EmpireJob>,empire_species: &Vec<EmpireSpecies>) -> Self {
[INFO] [stdout]    |            ^^^                    ----------------------------
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]   --> src/empire.rs:33:47
[INFO] [stdout]    |
[INFO] [stdout] 33 |             let planet = Planet::new(&mut rng,&self.jobs,&self.species);
[INFO] [stdout]    |                          -----------          ^^^^^^^^^^ expected `&Vec<EmpireJob>`, found `&[EmpireJob; 40]`
[INFO] [stdout]    |                          |
[INFO] [stdout]    |                          arguments to this function are incorrect
[INFO] [stdout]    |
[INFO] [stdout]    = note: expected reference `&Vec<empire::EmpireJob>`
[INFO] [stdout]               found reference `&[empire::EmpireJob; 40]`
[INFO] [stdout] note: associated function defined here
[INFO] [stdout]   --> src/empire.rs:95:12
[INFO] [stdout]    |
[INFO] [stdout] 95 |     pub fn new(rng:&mut ThreadRng,empire_jobs: &Vec<EmpireJob>,empire_species: &Vec<EmpireSpecies>) -> Self {
[INFO] [stdout]    |            ^^^                    ----------------------------
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0609]: no field `jobs` on type `&mut EmpireOptimization`
[INFO] [stdout]    --> src/empire_optimization.rs:128:37
[INFO] [stdout]     |
[INFO] [stdout] 128 |         let dims = Dim4::new(&[self.jobs.len() as u64, self.species.len() as u64, 1, 1]);
[INFO] [stdout]     |                                     ^^^^ unknown field
[INFO] [stdout]     |
[INFO] [stdout]     = note: available fields are: `planets`, `modifier`, `empire_species`, `empire_jobs`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0609]: no field `species` on type `&mut EmpireOptimization`
[INFO] [stdout]    --> src/empire_optimization.rs:128:61
[INFO] [stdout]     |
[INFO] [stdout] 128 |         let dims = Dim4::new(&[self.jobs.len() as u64, self.species.len() as u64, 1, 1]);
[INFO] [stdout]     |                                                             ^^^^^^^ unknown field
[INFO] [stdout]     |
[INFO] [stdout]     = note: available fields are: `planets`, `modifier`, `empire_species`, `empire_jobs`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0609]: no field `jobs` on type `&mut EmpireOptimization`
[INFO] [stdout]    --> src/empire_optimization.rs:128:37
[INFO] [stdout]     |
[INFO] [stdout] 128 |         let dims = Dim4::new(&[self.jobs.len() as u64, self.species.len() as u64, 1, 1]);
[INFO] [stdout]     |                                     ^^^^ unknown field
[INFO] [stdout]     |
[INFO] [stdout]     = note: available fields are: `planets`, `modifier`, `empire_species`, `empire_jobs`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0609]: no field `species` on type `&mut EmpireOptimization`
[INFO] [stdout]    --> src/empire_optimization.rs:128:61
[INFO] [stdout]     |
[INFO] [stdout] 128 |         let dims = Dim4::new(&[self.jobs.len() as u64, self.species.len() as u64, 1, 1]);
[INFO] [stdout]     |                                                             ^^^^^^^ unknown field
[INFO] [stdout]     |
[INFO] [stdout]     = note: available fields are: `planets`, `modifier`, `empire_species`, `empire_jobs`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0609]: no field `jobs` on type `&mut EmpireOptimization`
[INFO] [stdout]    --> src/empire_optimization.rs:142:38
[INFO] [stdout]     |
[INFO] [stdout] 142 |         let ids:Vec<EOrd> = (0..self.jobs.len() * self.species.len()).map(
[INFO] [stdout]     |                                      ^^^^ unknown field
[INFO] [stdout]     |
[INFO] [stdout]     = note: available fields are: `planets`, `modifier`, `empire_species`, `empire_jobs`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0609]: no field `species` on type `&mut EmpireOptimization`
[INFO] [stdout]    --> src/empire_optimization.rs:142:56
[INFO] [stdout]     |
[INFO] [stdout] 142 |         let ids:Vec<EOrd> = (0..self.jobs.len() * self.species.len()).map(
[INFO] [stdout]     |                                                        ^^^^^^^ unknown field
[INFO] [stdout]     |
[INFO] [stdout]     = note: available fields are: `planets`, `modifier`, `empire_species`, `empire_jobs`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0609]: no field `jobs` on type `&mut EmpireOptimization`
[INFO] [stdout]    --> src/empire_optimization.rs:144:30
[INFO] [stdout]     |
[INFO] [stdout] 144 |                 job_id: self.jobs[indx % self.jobs.len()].job.id,
[INFO] [stdout]     |                              ^^^^ unknown field
[INFO] [stdout]     |
[INFO] [stdout]     = note: available fields are: `planets`, `modifier`, `empire_species`, `empire_jobs`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0609]: no field `jobs` on type `&mut EmpireOptimization`
[INFO] [stdout]    --> src/empire_optimization.rs:142:38
[INFO] [stdout]     |
[INFO] [stdout] 142 |         let ids:Vec<EOrd> = (0..self.jobs.len() * self.species.len()).map(
[INFO] [stdout]     |                                      ^^^^ unknown field
[INFO] [stdout]     |
[INFO] [stdout]     = note: available fields are: `planets`, `modifier`, `empire_species`, `empire_jobs`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0609]: no field `species` on type `&mut EmpireOptimization`
[INFO] [stdout]    --> src/empire_optimization.rs:142:56
[INFO] [stdout]     |
[INFO] [stdout] 142 |         let ids:Vec<EOrd> = (0..self.jobs.len() * self.species.len()).map(
[INFO] [stdout]     |                                                        ^^^^^^^ unknown field
[INFO] [stdout]     |
[INFO] [stdout]     = note: available fields are: `planets`, `modifier`, `empire_species`, `empire_jobs`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0609]: no field `jobs` on type `&mut EmpireOptimization`
[INFO] [stdout]    --> src/empire_optimization.rs:144:47
[INFO] [stdout]     |
[INFO] [stdout] 144 |                 job_id: self.jobs[indx % self.jobs.len()].job.id,
[INFO] [stdout]     |                                               ^^^^ unknown field
[INFO] [stdout]     |
[INFO] [stdout]     = note: available fields are: `planets`, `modifier`, `empire_species`, `empire_jobs`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0609]: no field `jobs` on type `&mut EmpireOptimization`
[INFO] [stdout]    --> src/empire_optimization.rs:144:30
[INFO] [stdout]     |
[INFO] [stdout] 144 |                 job_id: self.jobs[indx % self.jobs.len()].job.id,
[INFO] [stdout]     |                              ^^^^ unknown field
[INFO] [stdout]     |
[INFO] [stdout]     = note: available fields are: `planets`, `modifier`, `empire_species`, `empire_jobs`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0609]: no field `species` on type `&mut EmpireOptimization`
[INFO] [stdout]    --> src/empire_optimization.rs:145:34
[INFO] [stdout]     |
[INFO] [stdout] 145 |                 species_id: self.species[indx / self.jobs.len()].species.id
[INFO] [stdout]     |                                  ^^^^^^^ unknown field
[INFO] [stdout]     |
[INFO] [stdout]     = note: available fields are: `planets`, `modifier`, `empire_species`, `empire_jobs`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0609]: no field `jobs` on type `&mut EmpireOptimization`
[INFO] [stdout]    --> src/empire_optimization.rs:144:47
[INFO] [stdout]     |
[INFO] [stdout] 144 |                 job_id: self.jobs[indx % self.jobs.len()].job.id,
[INFO] [stdout]     |                                               ^^^^ unknown field
[INFO] [stdout]     |
[INFO] [stdout]     = note: available fields are: `planets`, `modifier`, `empire_species`, `empire_jobs`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0609]: no field `jobs` on type `&mut EmpireOptimization`
[INFO] [stdout]    --> src/empire_optimization.rs:145:54
[INFO] [stdout]     |
[INFO] [stdout] 145 |                 species_id: self.species[indx / self.jobs.len()].species.id
[INFO] [stdout]     |                                                      ^^^^ unknown field
[INFO] [stdout]     |
[INFO] [stdout]     = note: available fields are: `planets`, `modifier`, `empire_species`, `empire_jobs`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0609]: no field `species` on type `&mut EmpireOptimization`
[INFO] [stdout]    --> src/empire_optimization.rs:145:34
[INFO] [stdout]     |
[INFO] [stdout] 145 |                 species_id: self.species[indx / self.jobs.len()].species.id
[INFO] [stdout]     |                                  ^^^^^^^ unknown field
[INFO] [stdout]     |
[INFO] [stdout]     = note: available fields are: `planets`, `modifier`, `empire_species`, `empire_jobs`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0609]: no field `jobs` on type `&mut EmpireOptimization`
[INFO] [stdout]    --> src/empire_optimization.rs:145:54
[INFO] [stdout]     |
[INFO] [stdout] 145 |                 species_id: self.species[indx / self.jobs.len()].species.id
[INFO] [stdout]     |                                                      ^^^^ unknown field
[INFO] [stdout]     |
[INFO] [stdout]     = note: available fields are: `planets`, `modifier`, `empire_species`, `empire_jobs`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `empire::Modifier: Convertable` is not satisfied
[INFO] [stdout]    --> src/empire_optimization.rs:188:73
[INFO] [stdout]     |
[INFO] [stdout] 188 |         let planet_job_priorities = mul(imperial_species_job_priorities,&self.modifier,true);
[INFO] [stdout]     |                                     ---                                 ^^^^^^^^^^^^^^ unsatisfied trait bound
[INFO] [stdout]     |                                     |
[INFO] [stdout]     |                                     required by a bound introduced by this call
[INFO] [stdout]     |
[INFO] [stdout] help: the trait `Convertable` is not implemented for `empire::Modifier`
[INFO] [stdout]    --> src/empire.rs:214:1
[INFO] [stdout]     |
[INFO] [stdout] 214 | pub struct Modifier {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = help: the following other types implement trait `Convertable`:
[INFO] [stdout]               arrayfire::Array<T>
[INFO] [stdout]               bool
[INFO] [stdout]               f32
[INFO] [stdout]               f64
[INFO] [stdout]               i16
[INFO] [stdout]               i32
[INFO] [stdout]               i64
[INFO] [stdout]               num_complex::Complex<f32>
[INFO] [stdout]             and 5 others
[INFO] [stdout] note: required by a bound in `arrayfire::mul`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/arrayfire-3.7.0/src/arith/mod.rs:455:16
[INFO] [stdout]     |
[INFO] [stdout] 455 |             U: Convertable,
[INFO] [stdout]     |                ^^^^^^^^^^^ required by this bound in `mul`
[INFO] [stdout] ...
[INFO] [stdout] 480 | overloaded_binary_func!("Multiplication of two Arrays", mul, mul_helper, af_mul);
[INFO] [stdout]     | --------------------------------------------------------------------------------
[INFO] [stdout]     | |                                                       |
[INFO] [stdout]     | |                                                       required by a bound in this function
[INFO] [stdout]     | in this macro invocation
[INFO] [stdout]     = note: this error originates in the macro `overloaded_binary_func` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `empire::Modifier: Convertable` is not satisfied
[INFO] [stdout]    --> src/empire_optimization.rs:188:73
[INFO] [stdout]     |
[INFO] [stdout] 188 |         let planet_job_priorities = mul(imperial_species_job_priorities,&self.modifier,true);
[INFO] [stdout]     |                                     ---                                 ^^^^^^^^^^^^^^ unsatisfied trait bound
[INFO] [stdout]     |                                     |
[INFO] [stdout]     |                                     required by a bound introduced by this call
[INFO] [stdout]     |
[INFO] [stdout] help: the trait `Convertable` is not implemented for `empire::Modifier`
[INFO] [stdout]    --> src/empire.rs:214:1
[INFO] [stdout]     |
[INFO] [stdout] 214 | pub struct Modifier {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = help: the following other types implement trait `Convertable`:
[INFO] [stdout]               arrayfire::Array<T>
[INFO] [stdout]               bool
[INFO] [stdout]               f32
[INFO] [stdout]               f64
[INFO] [stdout]               i16
[INFO] [stdout]               i32
[INFO] [stdout]               i64
[INFO] [stdout]               num_complex::Complex<f32>
[INFO] [stdout]             and 5 others
[INFO] [stdout] note: required by a bound in `arrayfire::mul`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/arrayfire-3.7.0/src/arith/mod.rs:455:16
[INFO] [stdout]     |
[INFO] [stdout] 455 |             U: Convertable,
[INFO] [stdout]     |                ^^^^^^^^^^^ required by this bound in `mul`
[INFO] [stdout] ...
[INFO] [stdout] 480 | overloaded_binary_func!("Multiplication of two Arrays", mul, mul_helper, af_mul);
[INFO] [stdout]     | --------------------------------------------------------------------------------
[INFO] [stdout]     | |                                                       |
[INFO] [stdout]     | |                                                       required by a bound in this function
[INFO] [stdout]     | in this macro invocation
[INFO] [stdout]     = note: this error originates in the macro `overloaded_binary_func` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `empire::Modifier: Convertable` is not satisfied
[INFO] [stdout]    --> src/empire_optimization.rs:188:37
[INFO] [stdout]     |
[INFO] [stdout] 188 |         let planet_job_priorities = mul(imperial_species_job_priorities,&self.modifier,true);
[INFO] [stdout]     |                                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ unsatisfied trait bound
[INFO] [stdout]     |
[INFO] [stdout] help: the trait `Convertable` is not implemented for `empire::Modifier`
[INFO] [stdout]    --> src/empire.rs:214:1
[INFO] [stdout]     |
[INFO] [stdout] 214 | pub struct Modifier {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = help: the following other types implement trait `Convertable`:
[INFO] [stdout]               arrayfire::Array<T>
[INFO] [stdout]               bool
[INFO] [stdout]               f32
[INFO] [stdout]               f64
[INFO] [stdout]               i16
[INFO] [stdout]               i32
[INFO] [stdout]               i64
[INFO] [stdout]               num_complex::Complex<f32>
[INFO] [stdout]             and 5 others
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `empire::Modifier: Convertable` is not satisfied
[INFO] [stdout]    --> src/empire_optimization.rs:188:37
[INFO] [stdout]     |
[INFO] [stdout] 188 |         let planet_job_priorities = mul(imperial_species_job_priorities,&self.modifier,true);
[INFO] [stdout]     |                                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ unsatisfied trait bound
[INFO] [stdout]     |
[INFO] [stdout] help: the trait `Convertable` is not implemented for `empire::Modifier`
[INFO] [stdout]    --> src/empire.rs:214:1
[INFO] [stdout]     |
[INFO] [stdout] 214 | pub struct Modifier {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = help: the following other types implement trait `Convertable`:
[INFO] [stdout]               arrayfire::Array<T>
[INFO] [stdout]               bool
[INFO] [stdout]               f32
[INFO] [stdout]               f64
[INFO] [stdout]               i16
[INFO] [stdout]               i32
[INFO] [stdout]               i64
[INFO] [stdout]               num_complex::Complex<f32>
[INFO] [stdout]             and 5 others
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `Vec<String>: std::marker::Copy` is not satisfied
[INFO] [stdout]    --> src/main.rs:311:46
[INFO] [stdout]     |
[INFO] [stdout] 311 |         let mut tiers:[Vec<String>;TIERS] = [Vec::new();TIERS];
[INFO] [stdout]     |                                              ^^^^^^^^^^ the trait `std::marker::Copy` is not implemented for `Vec<String>`
[INFO] [stdout]     |
[INFO] [stdout]     = note: the `Copy` trait is required because this value will be copied for each element of the array
[INFO] [stdout] help: create an inline `const` block
[INFO] [stdout]     |
[INFO] [stdout] 311 |         let mut tiers:[Vec<String>;TIERS] = [const { Vec::new() };TIERS];
[INFO] [stdout]     |                                              +++++++            +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `Vec<String>: std::marker::Copy` is not satisfied
[INFO] [stdout]    --> src/main.rs:311:46
[INFO] [stdout]     |
[INFO] [stdout] 311 |         let mut tiers:[Vec<String>;TIERS] = [Vec::new();TIERS];
[INFO] [stdout]     |                                              ^^^^^^^^^^ the trait `std::marker::Copy` is not implemented for `Vec<String>`
[INFO] [stdout]     |
[INFO] [stdout]     = note: the `Copy` trait is required because this value will be copied for each element of the array
[INFO] [stdout] help: create an inline `const` block
[INFO] [stdout]     |
[INFO] [stdout] 311 |         let mut tiers:[Vec<String>;TIERS] = [const { Vec::new() };TIERS];
[INFO] [stdout]     |                                              +++++++            +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `Arc<Job>: std::marker::Copy` is not satisfied
[INFO] [stdout]    --> src/main.rs:565:46
[INFO] [stdout]     |
[INFO] [stdout] 565 |     let mut jobs_arr: [Arc<Job>;JOBS_MAX] = [Arc::new(Job::default());JOBS_MAX];
[INFO] [stdout]     |                                              ^^^^^^^^^^^^^^^^^^^^^^^^ the trait `std::marker::Copy` is not implemented for `Arc<Job>`
[INFO] [stdout]     |
[INFO] [stdout]     = note: the `Copy` trait is required because this value will be copied for each element of the array
[INFO] [stdout]     = help: consider using `core::array::from_fn` to initialize the array
[INFO] [stdout]     = help: see https://doc.rust-lang.org/stable/std/array/fn.from_fn.html for more information
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/main.rs:596:13
[INFO] [stdout]     |
[INFO] [stdout] 596 |             af_print!("",species.modifier);
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             expected `&Array<_>`, found `&Modifier`
[INFO] [stdout]     |             arguments to this function are incorrect
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected reference `&arrayfire::Array<_>`
[INFO] [stdout]                found reference `&empire::Modifier`
[INFO] [stdout] note: function defined here
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/arrayfire-3.7.0/src/array.rs:645:8
[INFO] [stdout]     |
[INFO] [stdout] 645 | pub fn print_gen<T: HasAfEnum>(msg: String, input: &Array<T>, precision: Option<i32>) {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout]     = note: this error originates in the macro `af_print` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `Arc<Job>: std::marker::Copy` is not satisfied
[INFO] [stdout]    --> src/main.rs:565:46
[INFO] [stdout]     |
[INFO] [stdout] 565 |     let mut jobs_arr: [Arc<Job>;JOBS_MAX] = [Arc::new(Job::default());JOBS_MAX];
[INFO] [stdout]     |                                              ^^^^^^^^^^^^^^^^^^^^^^^^ the trait `std::marker::Copy` is not implemented for `Arc<Job>`
[INFO] [stdout]     |
[INFO] [stdout]     = note: the `Copy` trait is required because this value will be copied for each element of the array
[INFO] [stdout]     = help: consider using `core::array::from_fn` to initialize the array
[INFO] [stdout]     = help: see https://doc.rust-lang.org/stable/std/array/fn.from_fn.html for more information
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/main.rs:596:13
[INFO] [stdout]     |
[INFO] [stdout] 596 |             af_print!("",species.modifier);
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             expected `&Array<_>`, found `&Modifier`
[INFO] [stdout]     |             arguments to this function are incorrect
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected reference `&arrayfire::Array<_>`
[INFO] [stdout]                found reference `&empire::Modifier`
[INFO] [stdout] note: function defined here
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/arrayfire-3.7.0/src/array.rs:645:8
[INFO] [stdout]     |
[INFO] [stdout] 645 | pub fn print_gen<T: HasAfEnum>(msg: String, input: &Array<T>, precision: Option<i32>) {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout]     = note: this error originates in the macro `af_print` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0507]: cannot move out of `self.addend` which is behind a shared reference
[INFO] [stdout]    --> src/empire.rs:223:16
[INFO] [stdout]     |
[INFO] [stdout] 223 |         (raw + self.addend) * self.multiplier
[INFO] [stdout]     |                ^^^^^^^^^^^ move occurs because `self.addend` has type `arrayfire::Array<f32>`, which does not implement the `Copy` trait
[INFO] [stdout]     |
[INFO] [stdout] help: consider cloning the value if the performance cost is acceptable
[INFO] [stdout]     |
[INFO] [stdout] 223 |         (raw + self.addend.clone()) * self.multiplier
[INFO] [stdout]     |                           ++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0507]: cannot move out of `self.multiplier` which is behind a shared reference
[INFO] [stdout]    --> src/empire.rs:223:31
[INFO] [stdout]     |
[INFO] [stdout] 223 |         (raw + self.addend) * self.multiplier
[INFO] [stdout]     |                               ^^^^^^^^^^^^^^^ move occurs because `self.multiplier` has type `arrayfire::Array<f32>`, which does not implement the `Copy` trait
[INFO] [stdout]     |
[INFO] [stdout] help: consider cloning the value if the performance cost is acceptable
[INFO] [stdout]     |
[INFO] [stdout] 223 |         (raw + self.addend) * self.multiplier.clone()
[INFO] [stdout]     |                                              ++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0133]: call to unsafe function `JobPositionProduction::new` is unsafe and requires unsafe function or block
[INFO] [stdout]   --> src/empire_production.rs:63:43
[INFO] [stdout]    |
[INFO] [stdout] 63 |         job_positions.iter().map(|(_,jp)| JobPositionProduction::new(jp)).collect()
[INFO] [stdout]    |                                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0507]: cannot move out of `species.empire_species_modifier.multiplier` which is behind a shared reference
[INFO] [stdout]   --> src/empire_production.rs:80:24
[INFO] [stdout]    |
[INFO] [stdout] 80 |                     * (species.empire_species_modifier.multiplier + species.species_modifier.multiplier - 1) 
[INFO] [stdout]    |                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^--------------------------------------
[INFO] [stdout]    |                        |
[INFO] [stdout]    |                        `species.empire_species_modifier.multiplier` moved due to usage in operator
[INFO] [stdout]    |                        move occurs because `species.empire_species_modifier.multiplier` has type `arrayfire::Array<f32>`, which does not implement the `Copy` trait
[INFO] [stdout]    |
[INFO] [stdout] note: calling this operator moves the left-hand side
[INFO] [stdout]   --> /rustc/b52edc25bfbaa955b4b83c10f998e5224c3478b2/library/core/src/ops/arith.rs:91:11
[INFO] [stdout] help: consider cloning the value if the performance cost is acceptable
[INFO] [stdout]    |
[INFO] [stdout] 80 |                     * (species.empire_species_modifier.multiplier.clone() + species.species_modifier.multiplier - 1) 
[INFO] [stdout]    |                                                                  ++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0507]: cannot move out of `species.species_modifier.multiplier` which is behind a shared reference
[INFO] [stdout]   --> src/empire_production.rs:80:69
[INFO] [stdout]    |
[INFO] [stdout] 80 |                     * (species.empire_species_modifier.multiplier + species.species_modifier.multiplier - 1) 
[INFO] [stdout]    |                                                                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ move occurs because `species.species_modifier.multiplier` has type `arrayfire::Array<f32>`, which does not implement the `Copy` trait
[INFO] [stdout]    |
[INFO] [stdout] help: consider cloning the value if the performance cost is acceptable
[INFO] [stdout]    |
[INFO] [stdout] 80 |                     * (species.empire_species_modifier.multiplier + species.species_modifier.multiplier.clone() - 1) 
[INFO] [stdout]    |                                                                                                        ++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0507]: cannot move out of `base`, a captured variable in an `FnMut` closure
[INFO] [stdout]   --> src/empire_production.rs:81:24
[INFO] [stdout]    |
[INFO] [stdout] 73 |         let base = self.job.production + self.modifier.addend;
[INFO] [stdout]    |             ----   ------------------------------------------ move occurs because `base` has type `arrayfire::Array<f32>`, which does not implement the `Copy` trait
[INFO] [stdout]    |             |
[INFO] [stdout]    |             captured outer variable
[INFO] [stdout] ...
[INFO] [stdout] 77 |             |sum, species| sum 
[INFO] [stdout]    |             -------------- captured by this `FnMut` closure
[INFO] [stdout] ...
[INFO] [stdout] 81 |                     * (base + species.empire_species_modifier.addend + species.species_modifier.addend)
[INFO] [stdout]    |                        ^^^^-----------------------------------------
[INFO] [stdout]    |                        |
[INFO] [stdout]    |                        `base` moved due to usage in operator
[INFO] [stdout]    |                        `base` is moved here
[INFO] [stdout]    |
[INFO] [stdout] help: `Fn` and `FnMut` closures require captured values to be able to be consumed multiple times, but `FnOnce` closures may consume them only once
[INFO] [stdout]   --> /rustc/b52edc25bfbaa955b4b83c10f998e5224c3478b2/library/core/src/iter/traits/iterator.rs:2667:11
[INFO] [stdout] help: consider cloning the value if the performance cost is acceptable
[INFO] [stdout]    |
[INFO] [stdout] 81 |                     * (base.clone() + species.empire_species_modifier.addend + species.species_modifier.addend)
[INFO] [stdout]    |                            ++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0507]: cannot move out of `self.addend` which is behind a shared reference
[INFO] [stdout]    --> src/empire.rs:223:16
[INFO] [stdout]     |
[INFO] [stdout] 223 |         (raw + self.addend) * self.multiplier
[INFO] [stdout]     |                ^^^^^^^^^^^ move occurs because `self.addend` has type `arrayfire::Array<f32>`, which does not implement the `Copy` trait
[INFO] [stdout]     |
[INFO] [stdout] help: consider cloning the value if the performance cost is acceptable
[INFO] [stdout]     |
[INFO] [stdout] 223 |         (raw + self.addend.clone()) * self.multiplier
[INFO] [stdout]     |                           ++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0507]: cannot move out of `self.multiplier` which is behind a shared reference
[INFO] [stdout]    --> src/empire.rs:223:31
[INFO] [stdout]     |
[INFO] [stdout] 223 |         (raw + self.addend) * self.multiplier
[INFO] [stdout]     |                               ^^^^^^^^^^^^^^^ move occurs because `self.multiplier` has type `arrayfire::Array<f32>`, which does not implement the `Copy` trait
[INFO] [stdout]     |
[INFO] [stdout] help: consider cloning the value if the performance cost is acceptable
[INFO] [stdout]     |
[INFO] [stdout] 223 |         (raw + self.addend) * self.multiplier.clone()
[INFO] [stdout]     |                                              ++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0507]: cannot move out of `species.empire_species_modifier.addend` which is behind a shared reference
[INFO] [stdout]   --> src/empire_production.rs:81:31
[INFO] [stdout]    |
[INFO] [stdout] 81 |                     * (base + species.empire_species_modifier.addend + species.species_modifier.addend)
[INFO] [stdout]    |                               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ move occurs because `species.empire_species_modifier.addend` has type `arrayfire::Array<f32>`, which does not implement the `Copy` trait
[INFO] [stdout]    |
[INFO] [stdout] help: consider cloning the value if the performance cost is acceptable
[INFO] [stdout]    |
[INFO] [stdout] 81 |                     * (base + species.empire_species_modifier.addend.clone() + species.species_modifier.addend)
[INFO] [stdout]    |                                                                     ++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0507]: cannot move out of `species.species_modifier.addend` which is behind a shared reference
[INFO] [stdout]   --> src/empire_production.rs:81:72
[INFO] [stdout]    |
[INFO] [stdout] 81 |                     * (base + species.empire_species_modifier.addend + species.species_modifier.addend)
[INFO] [stdout]    |                                                                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ move occurs because `species.species_modifier.addend` has type `arrayfire::Array<f32>`, which does not implement the `Copy` trait
[INFO] [stdout]    |
[INFO] [stdout] help: consider cloning the value if the performance cost is acceptable
[INFO] [stdout]    |
[INFO] [stdout] 81 |                     * (base + species.empire_species_modifier.addend + species.species_modifier.addend.clone())
[INFO] [stdout]    |                                                                                                       ++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0507]: cannot move out of an `Arc`
[INFO] [stdout]   --> src/empire_production.rs:73:20
[INFO] [stdout]    |
[INFO] [stdout] 73 |         let base = self.job.production + self.modifier.addend;
[INFO] [stdout]    |                    ^^^^^^^^^^^^^^^^^^^-----------------------
[INFO] [stdout]    |                    |
[INFO] [stdout]    |                    value moved due to usage in operator
[INFO] [stdout]    |                    move occurs because value has type `arrayfire::Array<f32>`, which does not implement the `Copy` trait
[INFO] [stdout]    |
[INFO] [stdout] note: calling this operator moves the left-hand side
[INFO] [stdout]   --> /rustc/b52edc25bfbaa955b4b83c10f998e5224c3478b2/library/core/src/ops/arith.rs:91:11
[INFO] [stdout] help: consider cloning the value if the performance cost is acceptable
[INFO] [stdout]    |
[INFO] [stdout] 73 |         let base = self.job.production.clone() + self.modifier.addend;
[INFO] [stdout]    |                                       ++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0507]: cannot move out of `self.modifier.addend` which is behind a shared reference
[INFO] [stdout]   --> src/empire_production.rs:73:42
[INFO] [stdout]    |
[INFO] [stdout] 73 |         let base = self.job.production + self.modifier.addend;
[INFO] [stdout]    |                                          ^^^^^^^^^^^^^^^^^^^^ move occurs because `self.modifier.addend` has type `arrayfire::Array<f32>`, which does not implement the `Copy` trait
[INFO] [stdout]    |
[INFO] [stdout] help: consider cloning the value if the performance cost is acceptable
[INFO] [stdout]    |
[INFO] [stdout] 73 |         let base = self.job.production + self.modifier.addend.clone();
[INFO] [stdout]    |                                                              ++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0133]: call to unsafe function `JobPositionProduction::new` is unsafe and requires unsafe function or block
[INFO] [stdout]   --> src/empire_production.rs:63:43
[INFO] [stdout]    |
[INFO] [stdout] 63 |         job_positions.iter().map(|(_,jp)| JobPositionProduction::new(jp)).collect()
[INFO] [stdout]    |                                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]    |
[INFO] [stdout]    = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0507]: cannot move out of `species.empire_species_modifier.multiplier` which is behind a shared reference
[INFO] [stdout]   --> src/empire_production.rs:80:24
[INFO] [stdout]    |
[INFO] [stdout] 80 |                     * (species.empire_species_modifier.multiplier + species.species_modifier.multiplier - 1) 
[INFO] [stdout]    |                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^--------------------------------------
[INFO] [stdout]    |                        |
[INFO] [stdout]    |                        `species.empire_species_modifier.multiplier` moved due to usage in operator
[INFO] [stdout]    |                        move occurs because `species.empire_species_modifier.multiplier` has type `arrayfire::Array<f32>`, which does not implement the `Copy` trait
[INFO] [stdout]    |
[INFO] [stdout] note: calling this operator moves the left-hand side
[INFO] [stdout]   --> /rustc/b52edc25bfbaa955b4b83c10f998e5224c3478b2/library/core/src/ops/arith.rs:91:11
[INFO] [stdout] help: consider cloning the value if the performance cost is acceptable
[INFO] [stdout]    |
[INFO] [stdout] 80 |                     * (species.empire_species_modifier.multiplier.clone() + species.species_modifier.multiplier - 1) 
[INFO] [stdout]    |                                                                  ++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0507]: cannot move out of `species.species_modifier.multiplier` which is behind a shared reference
[INFO] [stdout]   --> src/empire_production.rs:80:69
[INFO] [stdout]    |
[INFO] [stdout] 80 |                     * (species.empire_species_modifier.multiplier + species.species_modifier.multiplier - 1) 
[INFO] [stdout]    |                                                                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ move occurs because `species.species_modifier.multiplier` has type `arrayfire::Array<f32>`, which does not implement the `Copy` trait
[INFO] [stdout]    |
[INFO] [stdout] help: consider cloning the value if the performance cost is acceptable
[INFO] [stdout]    |
[INFO] [stdout] 80 |                     * (species.empire_species_modifier.multiplier + species.species_modifier.multiplier.clone() - 1) 
[INFO] [stdout]    |                                                                                                        ++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0507]: cannot move out of `base`, a captured variable in an `FnMut` closure
[INFO] [stdout]   --> src/empire_production.rs:81:24
[INFO] [stdout]    |
[INFO] [stdout] 73 |         let base = self.job.production + self.modifier.addend;
[INFO] [stdout]    |             ----   ------------------------------------------ move occurs because `base` has type `arrayfire::Array<f32>`, which does not implement the `Copy` trait
[INFO] [stdout]    |             |
[INFO] [stdout]    |             captured outer variable
[INFO] [stdout] ...
[INFO] [stdout] 77 |             |sum, species| sum 
[INFO] [stdout]    |             -------------- captured by this `FnMut` closure
[INFO] [stdout] ...
[INFO] [stdout] 81 |                     * (base + species.empire_species_modifier.addend + species.species_modifier.addend)
[INFO] [stdout]    |                        ^^^^-----------------------------------------
[INFO] [stdout]    |                        |
[INFO] [stdout]    |                        `base` moved due to usage in operator
[INFO] [stdout]    |                        `base` is moved here
[INFO] [stdout]    |
[INFO] [stdout] help: `Fn` and `FnMut` closures require captured values to be able to be consumed multiple times, but `FnOnce` closures may consume them only once
[INFO] [stdout]   --> /rustc/b52edc25bfbaa955b4b83c10f998e5224c3478b2/library/core/src/iter/traits/iterator.rs:2667:11
[INFO] [stdout] help: consider cloning the value if the performance cost is acceptable
[INFO] [stdout]    |
[INFO] [stdout] 81 |                     * (base.clone() + species.empire_species_modifier.addend + species.species_modifier.addend)
[INFO] [stdout]    |                            ++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0507]: cannot move out of `species.empire_species_modifier.addend` which is behind a shared reference
[INFO] [stdout]   --> src/empire_production.rs:81:31
[INFO] [stdout]    |
[INFO] [stdout] 81 |                     * (base + species.empire_species_modifier.addend + species.species_modifier.addend)
[INFO] [stdout]    |                               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ move occurs because `species.empire_species_modifier.addend` has type `arrayfire::Array<f32>`, which does not implement the `Copy` trait
[INFO] [stdout]    |
[INFO] [stdout] help: consider cloning the value if the performance cost is acceptable
[INFO] [stdout]    |
[INFO] [stdout] 81 |                     * (base + species.empire_species_modifier.addend.clone() + species.species_modifier.addend)
[INFO] [stdout]    |                                                                     ++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0507]: cannot move out of `species.species_modifier.addend` which is behind a shared reference
[INFO] [stdout]   --> src/empire_production.rs:81:72
[INFO] [stdout]    |
[INFO] [stdout] 81 |                     * (base + species.empire_species_modifier.addend + species.species_modifier.addend)
[INFO] [stdout]    |                                                                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ move occurs because `species.species_modifier.addend` has type `arrayfire::Array<f32>`, which does not implement the `Copy` trait
[INFO] [stdout]    |
[INFO] [stdout] help: consider cloning the value if the performance cost is acceptable
[INFO] [stdout]    |
[INFO] [stdout] 81 |                     * (base + species.empire_species_modifier.addend + species.species_modifier.addend.clone())
[INFO] [stdout]    |                                                                                                       ++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0507]: cannot move out of an `Arc`
[INFO] [stdout]   --> src/empire_production.rs:73:20
[INFO] [stdout]    |
[INFO] [stdout] 73 |         let base = self.job.production + self.modifier.addend;
[INFO] [stdout]    |                    ^^^^^^^^^^^^^^^^^^^-----------------------
[INFO] [stdout]    |                    |
[INFO] [stdout]    |                    value moved due to usage in operator
[INFO] [stdout]    |                    move occurs because value has type `arrayfire::Array<f32>`, which does not implement the `Copy` trait
[INFO] [stdout]    |
[INFO] [stdout] note: calling this operator moves the left-hand side
[INFO] [stdout]   --> /rustc/b52edc25bfbaa955b4b83c10f998e5224c3478b2/library/core/src/ops/arith.rs:91:11
[INFO] [stdout] help: consider cloning the value if the performance cost is acceptable
[INFO] [stdout]    |
[INFO] [stdout] 73 |         let base = self.job.production.clone() + self.modifier.addend;
[INFO] [stdout]    |                                       ++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0507]: cannot move out of `self.modifier.addend` which is behind a shared reference
[INFO] [stdout]   --> src/empire_production.rs:73:42
[INFO] [stdout]    |
[INFO] [stdout] 73 |         let base = self.job.production + self.modifier.addend;
[INFO] [stdout]    |                                          ^^^^^^^^^^^^^^^^^^^^ move occurs because `self.modifier.addend` has type `arrayfire::Array<f32>`, which does not implement the `Copy` trait
[INFO] [stdout]    |
[INFO] [stdout] help: consider cloning the value if the performance cost is acceptable
[INFO] [stdout]    |
[INFO] [stdout] 73 |         let base = self.job.production + self.modifier.addend.clone();
[INFO] [stdout]    |                                                              ++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `tiers`
[INFO] [stdout]    --> src/main.rs:162:10
[INFO] [stdout]     |
[INFO] [stdout] 162 |     let (tiers,jobs) = create_jobs(&resources,&[
[INFO] [stdout]     |          ^^^^^ help: if this is intentional, prefix it with an underscore: `_tiers`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `traits`
[INFO] [stdout]    --> src/main.rs:257:9
[INFO] [stdout]     |
[INFO] [stdout] 257 |     let traits = create_traits(&resources,&jobs,&[
[INFO] [stdout]     |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_traits`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `techs`
[INFO] [stdout]    --> src/main.rs:299:9
[INFO] [stdout]     |
[INFO] [stdout] 299 |     let techs = create_techs(&resources,&jobs,&[
[INFO] [stdout]     |         ^^^^^ help: if this is intentional, prefix it with an underscore: `_techs`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0004]: non-exhaustive patterns: `&TraitEffect::All(_)` not covered
[INFO] [stdout]    --> src/main.rs:347:27
[INFO] [stdout]     |
[INFO] [stdout] 347 |                     match e {
[INFO] [stdout]     |                           ^ pattern `&TraitEffect::All(_)` not covered
[INFO] [stdout]     |
[INFO] [stdout] note: `TraitEffect<'_>` defined here
[INFO] [stdout]    --> src/main.rs:440:10
[INFO] [stdout]     |
[INFO] [stdout] 440 |     enum TraitEffect<'a> {
[INFO] [stdout]     |          ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 444 |         All(AddOrMul)               // Affects all resources
[INFO] [stdout]     |         --- not covered
[INFO] [stdout]     = note: the matched value is of type `&TraitEffect<'_>`
[INFO] [stdout] help: ensure that all possible cases are being handled by adding a match arm with a wildcard pattern or an explicit pattern as shown
[INFO] [stdout]     |
[INFO] [stdout] 356 ~                         },
[INFO] [stdout] 357 +                         &TraitEffect::All(_) => todo!()
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0507]: cannot move out of `*tech` which is behind a shared reference
[INFO] [stdout]    --> src/main.rs:386:31
[INFO] [stdout]     |
[INFO] [stdout] 386 |             (name.to_string(),*tech)
[INFO] [stdout]     |                               ^^^^^ move occurs because `*tech` has type `Tech<'_>`, which does not implement the `Copy` trait
[INFO] [stdout]     |
[INFO] [stdout] note: if `Tech<'_>` implemented `Clone`, you could clone the value
[INFO] [stdout]    --> src/main.rs:391:5
[INFO] [stdout]     |
[INFO] [stdout] 386 |             (name.to_string(),*tech)
[INFO] [stdout]     |                               ----- you could clone this value
[INFO] [stdout] ...
[INFO] [stdout] 391 |     enum Tech<'a> {
[INFO] [stdout]     |     ^^^^^^^^^^^^^ consider implementing `Clone` for this type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `tiers`
[INFO] [stdout]    --> src/main.rs:162:10
[INFO] [stdout]     |
[INFO] [stdout] 162 |     let (tiers,jobs) = create_jobs(&resources,&[
[INFO] [stdout]     |          ^^^^^ help: if this is intentional, prefix it with an underscore: `_tiers`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `traits`
[INFO] [stdout]    --> src/main.rs:257:9
[INFO] [stdout]     |
[INFO] [stdout] 257 |     let traits = create_traits(&resources,&jobs,&[
[INFO] [stdout]     |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_traits`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `techs`
[INFO] [stdout]    --> src/main.rs:299:9
[INFO] [stdout]     |
[INFO] [stdout] 299 |     let techs = create_techs(&resources,&jobs,&[
[INFO] [stdout]     |         ^^^^^ help: if this is intentional, prefix it with an underscore: `_techs`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0004]: non-exhaustive patterns: `&TraitEffect::All(_)` not covered
[INFO] [stdout]    --> src/main.rs:347:27
[INFO] [stdout]     |
[INFO] [stdout] 347 |                     match e {
[INFO] [stdout]     |                           ^ pattern `&TraitEffect::All(_)` not covered
[INFO] [stdout]     |
[INFO] [stdout] note: `TraitEffect<'_>` defined here
[INFO] [stdout]    --> src/main.rs:440:10
[INFO] [stdout]     |
[INFO] [stdout] 440 |     enum TraitEffect<'a> {
[INFO] [stdout]     |          ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 444 |         All(AddOrMul)               // Affects all resources
[INFO] [stdout]     |         --- not covered
[INFO] [stdout]     = note: the matched value is of type `&TraitEffect<'_>`
[INFO] [stdout] help: ensure that all possible cases are being handled by adding a match arm with a wildcard pattern or an explicit pattern as shown
[INFO] [stdout]     |
[INFO] [stdout] 356 ~                         },
[INFO] [stdout] 357 +                         &TraitEffect::All(_) => todo!()
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0507]: cannot move out of `*tech` which is behind a shared reference
[INFO] [stdout]    --> src/main.rs:386:31
[INFO] [stdout]     |
[INFO] [stdout] 386 |             (name.to_string(),*tech)
[INFO] [stdout]     |                               ^^^^^ move occurs because `*tech` has type `Tech<'_>`, which does not implement the `Copy` trait
[INFO] [stdout]     |
[INFO] [stdout] note: if `Tech<'_>` implemented `Clone`, you could clone the value
[INFO] [stdout]    --> src/main.rs:391:5
[INFO] [stdout]     |
[INFO] [stdout] 386 |             (name.to_string(),*tech)
[INFO] [stdout]     |                               ----- you could clone this value
[INFO] [stdout] ...
[INFO] [stdout] 391 |     enum Tech<'a> {
[INFO] [stdout]     |     ^^^^^^^^^^^^^ consider implementing `Clone` for this type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0004, E0133, E0277, E0308, E0425, E0507, E0609.
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0004`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `stellaris-performance-test` (bin "stellaris-performance-test") due to 31 previous errors; 8 warnings emitted
[INFO] [stderr] warning: build failed, waiting for other jobs to finish...
[INFO] [stdout] Some errors have detailed explanations: E0004, E0133, E0277, E0308, E0425, E0507, E0609.
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0004`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `stellaris-performance-test` (bin "stellaris-performance-test" test) due to 31 previous errors; 8 warnings emitted
[INFO] running `Command { std: "docker" "inspect" "cc50267bf99d064d6decfc6521ce1177c2763bd483be39675210177a3a0a7c9f", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "cc50267bf99d064d6decfc6521ce1177c2763bd483be39675210177a3a0a7c9f", kill_on_drop: false }`
[INFO] [stdout] cc50267bf99d064d6decfc6521ce1177c2763bd483be39675210177a3a0a7c9f
